Aufrufe in ST

Die folgenden Sprachelemente können in ST aufgerufen werden:

Artikel in diesem Abschnitt:

Reihenfolge für Sprachelemente beim Aufruf

Falls Sie eines dieser Sprachelemente aufrufen, aber unterschiedliche Sprachelemente mit dem gleichen Namen vorhanden sind, gilt die folgende Reihenfolge:

  1. Aufruf der Methode

  2. Aufruf der Funktionsbaustein-Instanz – nur wenn keine Methode mit dem gleichen Namen vorhanden ist

  3. Aufruf der Funktion – nur wenn keine Methode und keine Funktionsbaustein-Instanz mit dem gleichen Namen vorhanden ist

Hier die Erläuterung dieser Reihenfolge anhand des Beispiels 1, in dem diese 3 Sprachelemente deklariert sind:

  • eine Funktionsbaustein-Instanz mit dem Namen Element1 (im Abschnitt VAR...END)

  • eine Methode mit dem Namen Element1

  • eine Funktion mit dem Namen Element1

Aufgrund der Reihenfolge für den Aufruf des Sprachelements ruft Neuron Power Engineer die Methode auf. Parameter beim Aufruf, die in der Methode nicht deklariert sind, werden von Neuron Power Engineer als fehlerhaft gekennzeichnet.

Beispiel 1 für Reihenfolge für den Aufruf
FUNCTION_BLOCK CallElement
  VAR
    Element1 : MyFB1;
  END_VAR
 
  METHOD PUBLIC Element1
  END_METHOD
 
  Element1(IN1:=1, IN2:=2); // The method "Element1" is called. 'IN1' and 'IN2' are highlighted as faulty. 
  Element1(IN1:=1);         // The method "Element1" is called. 'IN1' is highlighted as faulty.
  Element1();               // The method "Element1" is called.
END_FUNCTION_BLOCK
 
FUNCTION_BLOCK MyFB1
  VAR_INPUT
    IN1 : int;
    IN2 : int;
  END_VAR
  VAR_OUTPUT
    OUT1 : int;
  END_VAR
    
  OUT1 := IN1 + IN2 +2;
END_FUNCTION_BLOCK
 
FUNCTION Element1
  VAR_INPUT
    IN1 : int;
  END_VAR
  VAR_OUTPUT
    OUT1 : int;
  END_VAR
END_FUNCTION

Fehlt die Deklaration der Methode (siehe Beispiel 2) ruft Neuron Power Engineer die Funktionsbaustein-Instanz auf.

Beispiel 2 für Reihenfolge für den Aufruf
FUNCTION_BLOCK CallElement
  VAR
    Element1 : MyFB1;
  END_VAR
 
  Element1(IN1:=1, IN2:=2); // The function block instance "Element1" is called.
  Element1(IN1:=1);         // The function block instance "Element1" is called.
  Element1();               // The function block instance "Element1" is called.
END_FUNCTION_BLOCK
 
FUNCTION_BLOCK MyFB1
  VAR_INPUT
    IN1 : int;
    IN2 : int;
  END_VAR
  VAR_OUTPUT
    OUT1 : int;
  END_VAR
    
  OUT1 := IN1 + IN2 +2;
END_FUNCTION_BLOCK
 
FUNCTION Element1
  VAR_INPUT
    IN1 : int;
  END_VAR
  VAR_OUTPUT
    OUT1 : int;
  END_VAR
END_FUNCTION

Erst, wenn die Deklaration der Funktionsbaustein-Instanz ebenfalls fehlt (siehe Beispiel 3), ruft Neuron Power Engineer die Funktion auf. Parameter beim Aufruf, die in der Funktion nicht deklariert sind, werden von Neuron Power Engineer als fehlerhaft gekennzeichnet.

Beispiel 3 für Reihenfolge für den Aufruf
FUNCTION_BLOCK CallElement
 
  Element1(IN1:=1, IN2:=2); // The function "Element1" is called. 'IN2' is highlighted as faulty. 
  Element1(IN1:=1);         // The function "Element1" is called.
  Element1();               // The function "Element1" is called.
END_FUNCTION_BLOCK
 
FUNCTION_BLOCK MyFB1
  VAR_INPUT
    IN1 : int;
    IN2 : int;
  END_VAR
  VAR_OUTPUT
    OUT1 : int;
  END_VAR
    
  OUT1 := IN1 + IN2 +2;
END_FUNCTION_BLOCK
 
FUNCTION Element1
  VAR_INPUT
    IN1 : int;
  END_VAR
  VAR_OUTPUT
    OUT1 : int;
  END_VAR
END_FUNCTION